Failure of in_longmode() shouldn't be treated the same as the function
returning 'true'.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
ss.attr.bytes = 0xc93; /* G+DB+P+S+Data */
#ifdef __x86_64__
- if ( in_longmode(ctxt, ops) )
+ rc = in_longmode(ctxt, ops);
+ if ( rc < 0 )
+ goto cannot_emulate;
+ if ( rc )
{
cs.attr.fields.db = 0;
cs.attr.fields.l = 1;
ss.limit = ~0u; /* 4GB limit */
ss.attr.bytes = 0xc93; /* G+DB+P+S+Data */
- if ( in_longmode(ctxt, ops) )
+ rc = in_longmode(ctxt, ops);
+ if ( rc < 0 )
+ goto cannot_emulate;
+ if ( rc )
{
cs.attr.fields.db = 0;
cs.attr.fields.l = 1;